Last updated on Monday, October 06, 2025
@inproceedings{Businge2020BENEVOL,
author = {John Businge and Alexandre Decan and Ahmed Zerouali and
Tom Mens and Serge Demeyer},
booktitle = {Proceedings {BENEVOL 2020} (19th edition of the
BElgian-NEtherlands software eVOLution symposium)},
month = dec,
title = {An Empirical Investigation of Forks as Variants in
the npm Package Distribution},
year = {2020},
abstract = {Software developers often need to create variants to
accommodate different customer segments. These
variants have a common code base but also comprise
variant-specific code. A common strategy to create a
variant is to clone\&own (or fork) an existing
repository and then adapt it to the new requirements.
This form of reuse has been enhanced with the advent
of social- coding platforms such as GitHub, and
package distribution platforms like npm. GitHub
offers facilities for forking, pull requests, and
cross-project traceability. npm offers facilities for
managing package release dependencies and dependents
on the distribution platform. Little is known about
the maintenance practices of the variants. We
therefore performed an exploratory investigation on
the evolution of variants, focusing on their
technical aspects. We collected variants from the
JavaScript ecosystem, whose sources are hosted on
GitHub, and whose packages are released on npm. We
have identified a total 12,813 variant forks from the
JavaScript ecosystem. In general, we observed that
mainlines have more number of package releases,
package dependencies, dependent packages and
dependent projects compared to their variant
counterparts. However, it is still interesting that
some variants have quite a considerable number of
package releases and dependent packages/projects; in
a some cases even more than their mainline
counterparts.},
annote = {workshoppaper},
url = {https://benevol2020.github.io},
}